let arr =[1,2,3]
for(var i=0;i<arr.length;i++){
    setTimeout(()=>{
        console.log(i,'原始for')
    })
}
for(var i=0;i<arr.length;i++){
    (function(i){
        setTimeout(()=>{
            console.log(i,'自执行for')
        })
    })(i)
    
}
for(let i=0;i<arr.length;i++){
    setTimeout(()=>{
        console.log(i,'let for')
    })
}
arr.forEach(item=>{
    console.log(item,'each')
})

Array.prototype.forEach2= function(fn){
    for(let i=0;i<this.length;i++){
        fn(this[i],i,this)
    }
}
arr.forEach2(item=>{
    console.log(item,'each2')
})